iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
AI & Data

利用 Databricks 學習 ML/LLM 開發系列 第 14

Day14 - Databricks Workflows 簡介

  • 分享至 

  • xImage
  •  

此篇是參考 Referenece 1 & 2 的內容,並實際操作之後的心得分享。

Databricks Workflows 是一個可以用來建立 data processing, machine learning, and analytics pipelines 的服務。Workflows 有完整的 managed orchestration services,包含 Databricks Jobs 以及 Delta Live Tables。Databricks Jobs 可以用來執行 non-interactive code,而 Delta Live Tables 則是用來建立 ETL pipelines。

Databricks workflow 通常包括底下幾個步驟

  1. 執行一個 Delta Live Tables pipeline,從 cloud storage 中讀取 raw clickstream data,並且清理、準備資料,將資料 sessionize,最後將 sessionized data 寫入 Delta Lake。

  2. 執行一個 Delta Live Tables pipeline,從 cloud storage 中讀取 order data,並且清理、轉換資料,最後將資料寫入 Delta Lake。

  3. 將 order data 與 sessionized clickstream data 做 join,建立一個新的資料集。

  4. 從準備好的資料中,提取 features。

  5. 平行處理多個 Taks,將 features 寫入 Delta Lake,並且訓練一個 machine learning model。

透過 Databricks job 建立 workflow

  1. 建立一個新的 notebook,並且加入程式碼來讀取一個包含每年最受歡迎的嬰兒名字的資料集。

1.1. Reretive and save data

import requests

response = requests.get('http://health.data.ny.gov/api/views/myeu-hzra/rows.csv')
csvfile = response.content.decode('utf-8')
dbutils.fs.put("dbfs:/FileStore/babynames.csv", csvfile, True)

1.2. Read and display filtered data

babynames = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("dbfs:/FileStore/babynames.csv")
babynames.createOrReplaceTempView("babynames_table")
years = spark.sql("select distinct(Year) from babynames_table").rdd.map(lambda row : row[0]).collect()
years.sort()
dbutils.widgets.dropdown("year", "2014", [str(x) for x in years])
display(babynames.filter(babynames.Year == dbutils.widgets.get("year")))
  1. 將這個資料集儲存到 DBFS。

  2. 建立一個新的 notebook,並且加入程式碼來從 DBFS 讀取資料集,並且依照年份來過濾資料,最後顯示結果。

  3. 建立一個新的 job,並且使用這兩個 notebook 來設定兩個 tasks。

  4. 執行這個 job,並且檢視結果。

https://ithelp.ithome.com.tw/upload/images/20230928/200916438oQUJQeqQ0.png

https://ithelp.ithome.com.tw/upload/images/20230928/20091643nJLeClbwRM.png

https://ithelp.ithome.com.tw/upload/images/20230928/20091643MX3xGmS22l.png

https://ithelp.ithome.com.tw/upload/images/20230928/20091643jH7On2I5US.png

https://ithelp.ithome.com.tw/upload/images/20230928/20091643qB1ufVjSSQ.png

https://ithelp.ithome.com.tw/upload/images/20230928/200916435UlJhOGS63.png

https://ithelp.ithome.com.tw/upload/images/20230928/20091643fcDVLtMQpn.png

https://ithelp.ithome.com.tw/upload/images/20230928/20091643eaKSWE6f3O.png

Reference:


上一篇
Day13 - Run first Delta Live Tables pipeline
下一篇
Day15 - Databricks Workflows 操作
系列文
利用 Databricks 學習 ML/LLM 開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言